Communications System to Feed Multiple Single Frequency Networks with Multiple Content

ABSTRACT

A system and processes create a transport stream carrying several encapsulated contents, watermarks, and other ancillary data. The transport stream is re-multiplexed while keeping synchronous and deterministic operation. Synchronous deterministic operation allow each derived transport stream to be broadcasted in Single Frequency Networks, as all re-multiplexers have the same signal at the input and selecting the same content generates exactly the same stream in multiple locations.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit under 35 U.S.C. §119(e) of U.S.Provisional Application No. 60/929,182 titled “System for multiplexingContent into a Single Transport Stream for re-multiplexing to FeedMultiple Single Frequency Networks with Different Content” filed on Jun.15, 2007 in the U.S. Patent and Trademark Office, the entire disclosureof which is herein incorporated by reference in its entirety for allpurposes.

TECHNICAL FIELD

The following description relates generally to a system useful tobroadcaster and mobile multimedia operators in delivering transportstreams sharing content to several points, and in particular to singlefrequency networks.

BACKGROUND

A single frequency network (SFN) is a powerful way to achieve largecoverage areas in many digital broadcasting schemes, such as, forexample, Digital Video Broadcasting for Terrestrial (DVB-T), DigitalVideo Broadcasting for Handheld Mobile Television (DVB-H), and AdvancedTelevision Systems Committee (ATSC) broadcasting as SFNs allowtransmitters to extend their area of coverage without using a secondchannel. This is important because portions of an available broadcastspectrum are one of the most expensive commodities in broadcastnetworks.

Signals feeding all transmitters in SFN systems must be totallysynchronous (i.e., the signal must contain the very same bit stream andreach the transmitter within fixed time tolerances). In large systems,different areas are covered by SFN transmitters that have partiallydifferent content (e.g., insertion of regional content). As a result,different bit streams are required at different SFN areas. A traditionaltelecom approach to support such a system is to transport elementarysignals to SFN nodal points, multiplex signals to create differentstreams for each SFN, and provide dedicated feeds to SFN transmitters.However, such an arrangement is very expensive and fragile when largeareas (e.g., countries or continents) are covered with thousands oftransmitters. Other approaches use satellite feeds to deliver signals bymultiplexing all SFN signals together. Unfortunately, broadcasting allstreams in parallel when many variants are required is also expensivesince bandwidth increases linearly with the number of SFN areas.Therefore, improved broadcasting schemes are needed for multipletransmitters servicing a large SFN.

SUMMARY

In one general aspect, a method of supplying multiple content sources ina single transport stream for broadcast in a single frequency network isdescribed below. The method includes receiving multiple transportstreams with differing content, processing the input transport streamsto determine information about packets of the transport stream,selecting packets from the multiple transport streams, slicing theselected packets into a block of packets, composing a metric feed packet(MFP), inserting the MFP before or after the block of packets, andoutput the block of packets and MFP in a transport stream of a singlefrequency network.

Processing the input stream may include identifying elements of thestream, packet type, and content type.

Composing the MFP may include determining the destination of theselected packets. Composing the MFP also may include providing timinginformation for synchronous re-multiplexing of the input at adestination. Composing the MFP also may include providing a map of eachpacket of the frame to a predetermined channel to de-multiplex the blockof packets. Composing the MFP also may include providing clock recoveryparameters including the bit-rate setting of the block of packets.Composing the MFP also may include providing a packet identifierremapping table for the block of packets. Composing the MFP also mayinclude providing a packet identifier filtering table for the block ofpackets. Composing the MFP also may include providing a time slice startof the block of packets.

The method may further include deriving an output time signal from anexternal reference to provide timing for the output transport stream.

In yet another aspect, a multiplexer for supplying a single transportstream including multiple content sources for broadcast in a singlefrequency network is described below. The multiplexer includes aplurality of inputs for receiving multiple transport streams withdiffering content; an analyzer to process the input transport streams todetermine information about packets of the transport stream; acontroller to generate control signals based on the determinedinformation; a selector to select packets from the multiple transportstreams based on the control signal; a buffer slicing the selectedpackets into a block of packets; a metric feed packet (MFP) composer togenerate an MFP based on one the control signal; an interleaver toinsert the MFP before or after the block of packets; and an output totransmit the block of packets and MFP in a transport stream of thesingle frequency network.

The analyzer may identify elements of the stream, packet type, andcontent type.

The MFP composer may determine the destination of the selected packets.

The MFP may include timing information for synchronous re-multiplexingof the input at a destination.

The system may include an output timer to output a timing signal from anexternal reference to provide timing for the output transport stream.

The MFP may include a map of each packet of the frame to a predeterminedchannel to de-multiplex the block of packets, clock recovery parametersincluding the bit-rate setting of the block of packets, a packetidentifier remapping table for the block of packets, a packet identifierfiltering table for the block of packets, or an indication of a timeslice start of the block of packets.

Other features will be apparent from the detailed description, drawings,and claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an exemplary block diagram of a system for single frequencynetworks.

FIG. 2 is an exemplary block diagram of the main multiplexer for use thein the system of FIG. 1.

FIG. 3 is an exemplary block diagram of the re-multiplexer for use thein the system of FIG. 1.

Throughout the drawings and the detailed description, like referencenumerals refer to the like elements.

DETAILED DESCRIPTION

In SFN systems, signals feeding all transmitters must be totallysynchronous (i.e., the signal must contain the very same bit stream andreach the transmitter within fixed time tolerances). The processes andsystems described in further detail below provide multiplexing andre-multiplexing of information to feed multiple SFN areas using a singlefeed and selecting location by location which information are required(with minimum overhead and without any coordination between locations).

FIG. 1 shows one example 100 of a SFN (e.g., as defined by ETS 101 191and in ATSC A110 standards). The network includes a head end 101,different locations 104, 105, 106, and a SFN serviced area 109. As shownin FIG. 1, a main multiplexer 110 located at the head end 101 of the SFNnetwork receives multiple transport streams (e.g., as defined by ISO138181-1) 111, 112, 113, 114, 115. Each of the transport streams mayinclude different content (e.g., A, B, C, D, and E) provided fromdifferent content providers. The main multiplexer 110 multiplexers thecontent supplied by the multiple streams together to form a singletransport stream 120. Time stamps locked to a stable reference 121 maybe implemented using a Global Positioning System (GPS) receiver (e.g.,part of NAVISTAR GPS managed by US Department of Defense) may beinserted in the stream. In addition, watermarks and other ancillary dataalso may be inserted.

The complete transport stream 120 is sent to different locations (e.g.,location 104, location 105, and location 106). Each location includes are-multiplexer 130, a stable reference 135, and transmitter 137 tobroadcast signals to the area 109 covered by the SFN. In FIG. 1, thethree locations are shown as an example only to illustrate the teachingherein. Any number of locations may be supported by the teachingsherein.

At each location, a re-multiplexer 135 receives the transport stream120. Each re-multiplexer is synchronized with a stable reference source135 (e.g., GPS receiver) to generate an identical transport stream 139to drive a corresponding transmitter 137. The transmitters 137 broadcastsignals to the area SFN 109.

FIG. 2 illustrates one example 200 of an implementation for the mainmultiplexer 110 having multiple TS input streams 201 and 202. Themultiplexer 200 includes N inputs for N TS input streams. For clarity ofillustration, only TS input stream 1 input 201, and TS input stream N205 are shown, with potential inputs 2 to N−1 illustrated by dots, as anarbitrary number of inputs may be applied. Analyzers 208 and 209 performan analysis of input transport streams and identify the stream content.For example, the analysis identifies elements of the stream, such asvideo and system information, determines packet type, content type,among other information used to process the stream. Analyzers 208 and209 pass the analysis results and packet-by-packet packet typeidentification to controller 213. Adaptors 211 and 212 process the inputtransport stream packets from Analyzers 208 and 209, respectively, forformat adaptation according to a instructions provided by the controller213. It will be appreciated that such format adaptation is optional andmay be provided for optimized packet transmission. The controller 213gathers information on the transport stream structure, information aboutthe actual packets in the stream, controls the type processing performedon each incoming packet by the format adaptation of adaptors 211 and212, provides instructions to the packet selector 214, and providesinformation to the Metric Feed Packet (MFP) composer 215 about thedestination of the selected packets based on the composer rules 210, asdescribed in further detail below. MFPs are transport stream packetsconforming to a MFP protocol illustrated herein to supply there-multiplexer with information needed for synchronous re-multiplexing.

Packet slicer 216 slices the output of the packet selector 214 into TSblocks whose lengths are dependent on the protocol selected, asdescribed below, and provides a count to the MFP composer 215.Interleaver 217 inserts one MFP packet created by MFP composer 215before or after every TS block of packets delivered from the slicer 216.Output timing 218 may be derived from an external reference 121, forexample, a GPS receiver, for all timing for the output stream 240 andfor the controller 213.

FIG. 3 illustrates on example 300 of a block diagram of a re-multiplexer130. The re-multiplexer 300 receives the TS input stream 301. The TSinput signal is provided to the phase locked loop (PPL) 302, memory 303,and detectors 304 and 305. Detector 304 detects the MFP packets presentin the input stream 301 and passes the content of the MFP packets to theinput address generator 310 and the output address generator 312. Theinput address generator computes an address for the buffer in of memory303 for operations related to incoming packets. Extractor 314 detectsMFP packets carrying a time-slice start extracting the time marksgenerating a reset pulse 315 for the input address generator 310 and theoutput address generator 312. Detector 305 detects MFP packets carryinga clock recovery parameters function or Mega-frame Initialization Packetpackets (MIPs) and computes output transport stream clock parameters320.

The re-multiplexer 300 uses a reference 325 obtained, for example, via aPLL 302 locked to the input transport stream 301. Alternatively, anexternal reference, such as a GPS receiver 330 may be used to derive thelocal reference 325. The local reference 325 is provided to the NumericControlled Oscillator (NCO) 337. It may be noted that such reference isalready forecasted by ETS 101 191 as necessary for SFN operation andalso is used by the transmitter for center frequency coordination. TheNCO 337 generates an output bit rate from local reference 325 based onoutput TS clock parameters. The output address generator 312 generatesread addresses for output related operations for memory 303. Theaddresses are computed using timing pulses from the NCO 337, the resetpulses 315 from the detector 314, and from information contained inincoming MFP packets delivered by detector 304. Using the computedaddress, packets are read from memory 303 and re-multiplexed at output340. Note that further processing may be necessary for someapplications. For example, a Packet Identifier (PID) (i.e., a uniqueinteger value used to associate elementary streams of a program in asingle or multi-program transport stream, for example, as defined byISO/IEC 13818-1) remapping may be provided, or Program Clock Reference(PCR) (i.e., a time stamp in the transport stream from which decodertiming is derived, for example, as defined by ISO/IEC 13818-1) re-timingmay be supported. These processes are already known in standardequipment for transport streams and therefore are not described infurther detail here.

As described above, the system 100 has three main elements: the mainmultiplexer 110, the metric feed packet (MF) protocol, and there-multiplexer 130. The system slices transport streams into blocks ofTS packets and adds before/after each block at least one extra packetwith information regarding the destination of the packet. The systeminserts time stamps delimiting processing time frames suitable to resetre-multiplexing engines and change and reverse change time positions ofdifferent elements within the time frame previously defined. Thetransport streams (e.g. 201, 202) from different sources are analyzed inorder to extract some basic timing and structural elements. For example,the analyzers 208 and 209:

-   -   extract PID for each input packet;    -   Identify Table ID (e.g., the 8-bit field which identifies system        information, program specific information, or a private table)        according to the tree structure defined in ISO 13818-1 and ETS        300 486 like the Program Association Table (PAT), for example,        as defined by ISO/IEC 13818-1, the Program Map Table (PMT) which        identifies and indicates the location of the streams that make        up each service, and location of the Program Clock Reference        fields for a service, for example, as defined by ISO/IEC        13818-1, and the Service Description Table (SDT) which contains        data describing the services in the system, for example, as        defined by ETSI EN 300 468;    -   identify PID referenced by the PMT, the Network Information        Table (NIT) which provides information about the physical        organization of networks, for example, as defined by ETSI EN 300        468, and the unreferenced PID;    -   identify MIP (e.g., as described by ETSI TS 101 191) and related        fields for SFN;    -   identify Multi Protocol Encapsulation (MPE), such as described        by ETSI EN 301 192 table type 0x3E and related fields conforming        to ETS 101 192; and    -   compute the average burst time and Time Slice Period (i.e., the        repetition time of bursts, such as the number of 10 ms units        between the start of two consecutive bursts, for example, as        defined by ETSI EN 301 192) for the MPE (table type 0x3E) and        Multi Protocol Encapsulation—Forward Error Correction (MPE-FEC)        for example, as described by ETSI EN 301 192 (table type 0x78)        packets.        The analysis is passed to the controller 213 which implements        decisions contained in composer rules. The composer rules may        establish which elements are placed in the transport streams        that the re-multiplexer 130 extracts from the transport stream        output from the main multiplexer.

The composer rules may specify:

-   -   elements present at outputs of all remote re-multiplexers;    -   elements present at outputs of a subset of remote        re-multiplexers    -   if elements with MPE-FEC and time slicing characteristics are        inserted in real time or dispersed in a time interval;    -   which elements define the time slicing boundaries; and    -   if any PID needs to be re-mapped in order to preserve Continuity        Counter (i.e., the 4-bit field incrementing with each transport        stream packet with the same PID, for example, as defined in ISO        13818-1) integrity.

Format adaptation is performed on any single packet according todirectives received from controller 213. The controller 213 can directthe adaptors 211, 212 to:

-   -   store, count, and output packets identified as Burst Elements        and requiring time dispersion at a lower packet rate such that        all packets will be confined in the Time Slice Period to provide        a stream of packets with a constant bit rate inside the Time        Slice Period;    -   change PID of packets requiring re-mapping;    -   delete packets according to PID; and    -   delete packets according to Table ID.

The controller 213 determines the Packet Type according to the composerrules. The controller passes the Packet Type information to MFP Composer215 and drives the packet selector 214. An MFP packet may carry thePacket Type information for a limited number of packets; therefore, theslicer 216 splits the output of the packet selector 214 into blocks andfor each block the MFP composer 215 creates an MFP packet. Theinterleaver 217 creates the complete stream by inserting one MFP packetbefore (or after) each block of packet computed by the slicer 216. Anumerically controlled oscillator 218 locked to a stable source like aGPS receiver 121 generates all timing pulses for the system. Thecontroller 213 uses both the time pulses created the output timing 212and the time slice period from the analyzer 208, 209 to insert timeslice start function in the MFP packets. The time slice start functionis a function of MFP protocol described in further detail below.

The MFP is designed for a flexible definition of information about ablock of TS packets transmitted in the TS before or after the MFP. Table1 shows one example of the structure of MFP.

TABLE 1 N^(o) of Syntax bits Identifier Remark MFP( ){  MPEG-2 TS PacketHeader {   Sync byte 8 bslbf 0x47   Transport error indicator 1 bslbf 0  Payload unit start indicator 1 bslbf 1   Transport priority 1 bslbf 0  PID 13 uimsbf 0x0007   Transport scrambling control 2 bslbf 00  Adaptation field control 2 bslbf 00   Continuity counter 4 uimsbf  } MFP data( ){   Version 8 uimsbf 0x01   for (i=0;i<n;i++) {    Function()   }  } } }

The MFP packet is composed of MPEG-2 TS Packet Header (e.g., as definedby ISO/IEC 13818-1) and the MFP data as shown in Table 1.

The MPEG-2 TS Packet Header includes:

-   -   Sync byte: fixed to 0x47    -   Transport error indicator shall be set to 0    -   Payload unit start indicator shall be set to 1.    -   Transport priority shall be set to 0.    -   PID the PID value for MFP is set to 0x0007.    -   Transport scrambling control indicates this packet must be not        scrambled and the value of this field shall be 00;    -   Adaptation field control indicates no adaptation field shall be        present in the MFP and the value of this field shall be 00;    -   Continuity Counter is a 4 bit field increments every MFP packet.

Parameters and functions of the MFP data include: Version showing theversion of MFP protocol and is set to 0x01; and Function: includes thefunctions of the MFP. The MFP functions are designed to insert differenttypes of information about packets that follows/precedes the MFP in theTS. Table 2 shows one example of the defined functions and correspondingtags.

TABLE 2 Function name Tag Description Reserved 0x00 This tag is reservedand shall not be used Packet type table 0x01 Map each packet of theframe to a specific channel for de-multiplexing purposes. Clock recovery0x02 Transports information about the bit-rate parameters setting of theTS. PID re-mapping 0x03 Transports information about a specific PIDtable remapping. PID filtering table 0x04 Transports information about aspecific PID filtering. Time-slice start 0x05 Flags the time-sliceresynchronization point Reserved for future 0x06 These tags are reservedfor future use to implementations of the protocol 0xFF

The Packet Type Table Function provides rules in order to decide if onepacket will be part of the de-multiplexed Transport Stream. Thisfunction refers to the n packets that follow or precede the MFP. Table 3describes an example of the structure and corresponding fields. Thestructure and fields have the following meaning:

-   -   Function tag: Tag of this function is set to 0x01.    -   Function length: the total length of this function. This value        is variable.    -   Packet mode: defines meaning of following channel information        and data sizes; values are according to Table 4.    -   Packet type: sets the destination of each of the        following/preceding TS packets according to the Packet mode.

TABLE 3 N^(o) of Syntax bits Identifier Remark Packet Type TableFunction( ){  Function tag 8 uimsbf 0x01  Function length 8 uimsbf Packet mode 8 uimsbf  if Packet mode == 00 {   For(i=0;i<length*2;i++){    Packet type 4 uimsbf   }  else if Packet mode== 01 {   For (i=0;i<length;i++){    Packet type 8 uimsbf  }  else ifPacket mode == 02 {   For (i=0;i<length*4;i++){    Packet type 2 uimsbf }  else if Packet mode == 03 {   For (i=0;i<length;i++){    Packet type8 uimsbf  } }

TABLE 4 Packet mode Tag Size Description Reserved 0x00 — This TAG isreserved and shall not be used. 14 channels 0x01 4 Marks the referred TSpacked as one of the 14 direct mapping bit channels or as one of the 2fixed channels. 0x0: No channel, packet is discarded. 0x1 to 0xE: Packetis assigned to the relative channel number. 0xF: Packet is mapped to allchannels. 254 channels 0x02 8 Marks the referred TS packet as one of the254 direct mapping bit channels or as one of the 2 fixed channels. 0x00:No channel, packet is discarded. 0x01 to 0xFE: Packet is assigned to therelative channel number 0xFF: Packet is mapped to all channels. 2channels AND 0x03 2 Flags the mapping of the referred TS packet to eachof the mapping bit two channels. Bit 0: when 0 the packet is not de-multiplexed to channel 1, when 1 the packet is de-multiplexed tochannel 1. Bit 1: when 0 the packet is not de- multiplexed to channel 2,when 1 the packet is de-multiplexed to channel 2. 8 channels AND 0x04 8Flags the mapping of the referred TS packet to each mapping bit of the 8channels. Bit 0 to 7: when 0 the packet is not de- multiplexed to therelative channel, when 1 the packet is de-multiplexed to the relativechannel. 254 channels 0x05 8 Marks the referred TS packet as one of thefollowing Store&Forward bit channels: mapping 0x00: No channel, packetis discarded. 0x01 to 0x3F: Store&Forward packets, buffered andinserted. 0x40: No channel. packet is discarded. 0x41 to 0x7F: Streampackets de-multiplexed in the relative channels. 0x80: No channel,packet is discarded. 0x81 to 0xBF: Packets to be replaced byStore&Forward packets. 0xC0: No channel, packet is discarded. 0xC1 to0xFF: Global packets de-multiplexed by all channels.

The clock recovery parameters function is the MFP function carryinginformation to compute the output transport stream clock parameters usedby the re-multiplexer to synchronize output timing. The clock recoveryparameters function sets the NCO increment and NCO overflow parametersfor the byte-rate of the TS of a single channel. NCO is assumed to use a27 MHz clock; therefore, the byte frequency is:

$f = \frac{27 \cdot 10^{8} \cdot {NCO}_{inc}}{{NCO}_{ovfl}}$

Table 5 describes structure and fields of the clock recover functionwhich have the following meaning:

-   -   Function tag: Tag of this function is set to 0x02 according to        Table 2.    -   Function length: The total length of this function. This value        is fixed to 0x0B.    -   Channel: sets the channel this function refers to.    -   NCO inc: sets the increment parameter of NCO.    -   NCO ovfl: sets the overflow parameter of NCO.

TABLE 5 N^(o) of Syntax bits Identifier Remark Clock Recovery ParametersFunction ( ){   Function tag 8 uimsbf 0x02   Function length 8 uimsbf0x0B   Channel 8 uimsbf   NCO inc 32 uimsbf   NCO ovfl 32 uimsbf }

The PID re-mapping function sets a new PID value for any packet having agiven PID value. Table 6 describes an example of the PID remappingfunction having the structure and fields having the following meaning:

-   -   Function tag: Tag of this function is set to 0x03 according to        Table 2.    -   Function length: The total length of this function. This value        is fixed to 0x07.    -   Channel: sets the channel this function refers to.    -   Original PID: sets the PID that has to be re-mapped.    -   Reserved: these three bits shall be set to 1.    -   Re-mapped PID: sets the PID that will replace original PID.

TABLE 6 N^(o) of Syntax bits Identifier Remark PID Re-mapping Function() {   Function tag 8 uimsbf 0x03   Function length 8 uimsbf 0x07  Channel 8 uimsbf   Reserved 3 fvb 111   Original PID 13 uimsbf  Reserved 3 fvb 111   Re-mapped PID 13 uimsbf }

The PID filter function sets a PID value of packets to be dropped. Table7 describes an example of the PID filter function structure and fieldsthat have following meaning:

-   -   Function tag: tag of this function is set to 0x03 according to        Table 2.    -   Function length: the total length of this function. This value        is fixed to 0x04.    -   Channel: sets the channel this function refers to.    -   Status: this flag sets the status of filtering of the PID.        -   0: the PID is dropped.        -   1: the PID is passed.    -   Reserved: these two bits shall be set to 1.    -   Original PID: sets the PID that has to be filtered.

TABLE 7 N^(o) of Syntax bits Identifier Remark PID Filter Function( ) {  Function tag 8 uimsbf 0x04   Function length 8 uimsbf 0x05   Channel 8uimsbf   Status 1 uimsbf   Reserved 2 fvb 11   Original PID 13 uimsbf }

The time slice start function defines the start of a time slice period.Boundaries of a time slice period are 2 consecutive time slice starts.Table 8 describes an example of the time slice start function and thestructure and fields that have the following meanings:

-   -   Function tag: tag of this function is set to 0x05 according to        Table 2.    -   Function length: the total length of this function. This value        is fixed to 0x03.    -   Status: this flag indicate the time slice is start.        -   0: reserved.        -   1: time slice start.    -   Reserved: these seven bits shall be set to 1.

TABLE 8 N^(o) of Syntax bits Identifier Remark Time Slice Function ( ){  Function tag 8 uimsbf 0x05   Function length 8 uimsbf 0x03   Status 1bslbf   Reserved 7 fvb 1111111 }The detector 304 of the re-multiplexer identifies the PID of the MFPpackets from the input transport stream and extracts the MFP packets andanalyzes the MFP functions. The Packet Type Table Function carries onePacket Type field for each input packet. Packet Type field signals ifthe corresponding input packet is part of the output transport stream.According to the Packet Type, the input packets are written to memory303 or they are dropped. The memory 303 is divided in several parts,such as a main buffer area and several delay buffer areas. Packetsidentified by the Packet Type as global packets or stream packets arestored in the main buffer area. Packets identified by the Packet Type asstore and forward packets are stored in a delay buffer area. The PacketType also indicates which delay buffer is used. Packets identified bythe Packet Type as packets to be replaced by store and forward packetsare replaced with packets read from delay buffer and are stored in mainbuffer area. The Packet Type also indicates which delay buffer is used.During the above-described processing, the re-mapped packets have theiroriginal PID restored. Packets identified as packets that are to bedeleted are dropped.

Addresses for the input related memory operations are generated by inputaddress generator 310. In one example, one write address counter isprovided for the first memory area and write address counters also areprovided for each delay buffer. The counters are incremented every timea packet is written in the corresponding area. There is one read addresscounter for each delay buffer and they are incremented every time aPacket Type code directs moving one packet from the delay buffer to themain buffer. The MFP time slice start function provided inside the MFPpacket signals the start of the time slice period. The timing extractor314 generates the block reset pulse 315. The read and write addresscounters are reset every time a block reset pulse 315 generated by thetiming extractor 314.

The extractor 315 outputs transport stream clock parameters that arerecovered from the clock recovery parameters function. Output transportstream clock parameters also may be derived by a standard MIP packet ifpresent in the input transport stream. The output timing signals arecomputed by the NCO 335, and distributed to the output address generator312. The output address generator 312 scans the main buffer with alinear address at the output clock rate. The output address generator isreset by the block reset pulse 315 delayed by a predetermined period toaccount for internal processing delays.

Accordingly, the system and processes described herein create atransport stream with maximum efficiency carrying several encapsulatedcontents, watermarks, and ancillary data such that remotere-multiplexers can re-multiplex the contents in several ways whilekeeping synchronous and deterministic operation. Synchronousdeterministic operation allow each derived transport stream to bebroadcasted in Single Frequency Networks, as all re-multiplexers havethe same signal at the input and selecting the same content generatesexactly the same stream (bit exact) in multiple locations.

It will be appreciated the main multiplexer 110 and re-multiplexers 130may be implemented by a combination of hardwired logic, switches, gates,processing devices, buffers and/or software instructions provided fromone or more memory devices interpreted by one or more processingdevices. The processing devices may be implemented using anygeneral-purpose or special purpose computing device, such as, forexample, a processor, a digital signal processor, a microcomputer, afield programmable array, a programmable logic unit, a microprocessor orany other device capable of responding to and executing instructions ina defined manner. The processing device may run one or more softwareapplications including the functions provided herein. The processingdevice also may access, store, manipulate, process, and create data inresponse to the applications. The software applications may include acomputer program, a piece of code, an instruction, or some combinationthereof, for independently or collectively instructing the processingdevice to operate as desired.

The applications, content, and data may be embodied permanently ortemporarily in any type of machine, component, physical or virtualequipment, storage medium or device, or propagated signal wave capableof providing instructions or data to or being interpreted by theprocessing device. In particular, the applications or data may be storedby a storage medium or a memory including volatile and non-volatilememories that store digital data (e.g., a read only memory (ROM), arandom access memory (RAM), a flash memory, a hard disk, a DROM, aflip-flop, a register, a buffer, an SRAM, DRAM, PROM, EPROM, OPTROM,EEPROM, NOVRAM, or RAMBUS), such that if the memory is read or accessedby the processing device, the specified steps, processes, and/orinstructions are performed and/or data is accessed, processed, orstored. The memory may include an I/O interface, such that data andapplications may be loaded and stored in the memory allowing theapplications, programming, and data to be updated, deleted, changed, oraugmented.

A number of exemplary implementations have been described. Nevertheless,it will be understood that various modifications may be made. Forexample, suitable results may be achieved if the steps of describedtechniques are performed in a different order and/or if components in adescribed components, architecture, or devices are combined in adifferent manner and/or replaced or supplemented by other components.Accordingly, other implementations are within the scope of the followingclaims.

1. A method of supplying multiple content sources in a single transportstream for broadcast in a single frequency network, the methodcomprising: receiving multiple transport streams with differing content;processing the input transport streams to determine information aboutpackets of the transport stream; selecting packets from the multipletransport streams slicing the selected packets into a block of packets;composing a metric feed packet (MFP); inserting the MFP before or afterthe block of packets; and output the block of packets and MFP in atransport stream of a single frequency network.
 2. The method of claim 1wherein processing the input stream includes identifying elements of thestream, packet type, and content type.
 3. The method 1 of claim whereincomposing the MFP includes determining the destination of the selectedpackets.
 4. The method 1 of claim wherein composing the MFP includesproviding timing information for synchronous re-multiplexing of theinput at a destination.
 5. The method of claim 1 further comprisingderiving an output time signal from an external reference to providetiming for the output transport stream.
 6. The method of claim 1 whereincomposing the MFP includes providing a map of each packet of the frameto a predetermined channel to de-multiplex the block of packets.
 7. Themethod of claim 1 wherein composing the MFP includes providing clockrecovery parameters including the bit-rate setting of the block ofpackets.
 8. The method of claim 1 wherein composing the MFP includesproviding a packet identifier remapping table for the block of packets.9. The method of claim 1 wherein composing the MFP includes providing apacket identifier filtering table for the block of packets.
 10. Themethod of claim 1 wherein composing the MFP includes providing a timeslice start of the block of packets.
 11. A multiplexer for supplying asingle transport stream including multiple content sources for broadcastin a single frequency network, the multiplexer comprising: a pluralityof inputs for receiving multiple transport streams with differingcontent; an analyzer to process the input transport streams to determineinformation about packets of the transport stream; a controller togenerate control signals based on the determined information; a selectorto select packets from the multiple transport streams based on thecontrol signal; a buffer slicing the selected packets into a block ofpackets; a metric feed packet (MFP) composer to generate an MFP based onone the control signal; an interleaver to insert the MFP before or afterthe block of packets; and an output to transmit the block of packets andMFP in a transport stream of the single frequency network.
 12. Thesystem of claim 11 wherein the analyzer identifies elements of thestream, packet type, and content type.
 13. The system of claim 11 ofclaim wherein the MFP composer determines the destination of theselected packets.
 14. The system of claim 11 of claim wherein the MFPincludes timing information for synchronous re-multiplexing of the inputat a destination.
 15. The system of claim 11 further comprising anoutput timer to output a timing signal from an external reference toprovide timing for the output transport stream.
 16. The system of claim11 wherein the MFP includes a map of each packet of the frame to apredetermined channel to de-multiplex the block of packets.
 17. Thesystem of claim 11 wherein the MFP includes clock recovery parametersincluding the bit-rate setting of the block of packets.
 18. The systemof claim 11 wherein the MFP includes a packet identifier remapping tablefor the block of packets.
 19. The system of claim 11 wherein the MFPincludes a packet identifier filtering table for the block of packets.20. The system of claim 11 wherein the MFP an indication of a time slicestart of the block of packets.